package com.itnoob.service.impl.decorator;

import com.itnoob.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @author zhoujun 权限装饰者类:它表示权限检查的功能
 * @date 2024/12/7 10:21
 */
@Service("authUserService")
public class AuthUserServiceDecorator extends UserServiceDecorator{

    //通过构造方法注入被装饰的service对象,并使用@Autowired注解让spring自动为我们找到合适的bean对象
    @Autowired
    public AuthUserServiceDecorator(UserService userService) {
        super(userService);
    }

    @Override
    public String getUserName(int id) {
        System.out.println("进行了权限认证,验证通过后才可以访问service");

        //模拟当前用户的角色
        String role = "admin";
        if (role.equals("admin")){
            //如果有权限,则调用装饰者类对象的方法
           return userService.getUserName(id);
        }else {
            //如果没有权限,则抛出异常或者返回空对象
            throw new RuntimeException("没有权限访问");
        }
    }
}
